package com.wocai.jrt.orgadmin.product.service.spi;

import java.util.List;

import com.vteba.service.generic.MyBatisService;
import com.wocai.jrt.orgadmin.product.bean.CommissionSetResBean;
import com.wocai.jrt.orgadmin.product.bean.ProductReqBean;
import com.wocai.jrt.orgadmin.product.model.Product;
import com.wocai.jrt.orgadmin.product.model.ProductBean;
import com.wocai.jrt.orgadmin.product.model.ProductFundsUse;
import com.wocai.jrt.orgadmin.stats.bean.IndexStatsReqBean;
import com.wocai.jrt.orgadmin.stats.bean.Pie;

/**
 * 产品相关的业务service接口。
 * 
 * @author yinlei
 * @date 2015-8-13 16:43:26
 */
public interface ProductService extends MyBatisService<Product, ProductBean, String> {
	List<CommissionSetResBean> getCommissionSet(Product product);
	List<Product> relatedPagedList(Product product);
	
	/**
	 * 获取机构下可买产品
	 * @param product
	 * @return List<Product>
	 * @author zhangyz
	 */
	List<Product> getBuyableProducts(Product product);
	List<CommissionSetResBean> getSaleAllCommissionSet(Product product);
	List<Pie> productSale(IndexStatsReqBean indexStatsReqBean);
	Product getDetail(ProductReqBean productReqBean);
	int nativeCountBy(Product product);
	List<Product> issuersPagedList(Product model);
	int issuersCountBy(Product model);
	
	 int updateAddOrEditById(Object obj);
	 
	/** 
	* @Title: getFundsUse 
	* @Description: 获取资金运用产品管理，包含已募集和已使用资金汇总
	* @Time:2016年4月1日 上午11:24:39
	* @param product
	* @return 
	* List<ProductFundsUse>    返回类型 
	*/
	List<ProductFundsUse> getFundsUse(Product product);
	
	/** 
	* @Title: countByState 
	* @Description: 查询 state in ('1','2') <br/> 1-募集中，2-募集完成',
	* @Time:2016年4月1日 下午3:30:23
	* @param model
	* @return 
	* int    返回类型 
	*/
	int countByState(Product model);
	
	
}
